<?php

namespace Administrador\Controller;

use Zend\Db\Adapter\Adapter;
use Zend\Session\Container;
use Zend\View\Model\ViewModel;
use Zend\View\HelperPluginManager;
use Zend\Cache\Storage\Adapter\Session;
use Zend\Mvc\Controller\AbstractActionController;

use Administrador\Model\Entity\Base;
use Administrador\Model\Entity\Optin;
use Administrador\Model\Entity\Archivo;

class EstadisticasController extends AbstractActionController
{
  private $odbc;
   
  /*pagina principal del administrador*/
  public function indexAction()
  {
    $session = new Container("univision");
    if(isset($session->id)):
    
      $this->odbc = $this->getServiceLocator()->get("ODBC");
      $db = new Base($this->odbc); 
      $this->layout('layout/estadisticas');
      
      return new ViewModel($db->contUser());  
    
    else:
      $this->redirect()->toRoute('administrador');
    endif;
  }
  
  /*vista que permite administrar la carga de archivos*/
  public function SubeArchivoAction()
  {
    $session = new Container("univision");
    if(isset($session->id)):
      $vista =  new ViewModel();
      $vista->setTerminal(true);
      return $vista;
    else:
      $this->redirect()->toRoute('administrador');
    endif;
  }
  
  /*vista que permite manipular las graficas de los arcvhivos*/
  public function optinAction()
  {
    $session = new Container("univision");
    if(isset($session->id)):
      
      $this->odbc = $this->getServiceLocator()->get("ODBC");
      $optin = new Base($this->odbc); 
   
      $vista =  new ViewModel($optin->optin());
      $vista->setTerminal(true);
      return $vista;
    else: 
      $this->redirect()->toRoute('administrador');
    endif;
  }
  
  //funcion para el news letter
  public function NewslettersAction()
  {
    $session = new Container("univision");
    
    if(isset($session->id)):
    
      $this->odbc = $this->getServiceLocator()->get("ODBC");
      $news = new Base($this->odbc);  
      
      $data = $news->newsletter();
      
      $vista =  new ViewModel($data);
      $vista->setTerminal(true);
      return $vista;   
    
    
    else:
      $this->redirect()->toRoute('administrador');
    endif;
  }
  /*permite realizar la carga del archivo csv*/
  public function SubeAction()
  {
    $session = new Container("univision");
    if(isset($session->id)):
    
      $this->odbc = $this->getServiceLocator()->get("ODBC");
      
      //conseguimos los valores pasados por post
      $post = $this->request->getPost(); 
      $tipo = $post["tipo_archivo"];
      $file = $post["namefile"];
      //manod el nombre de los archivos
      $archivo = new Archivo($file,$tipo,$this->odbc);
      $data = $archivo->filtro();
      
      //muestro la vista
      $vista =  new ViewModel($data);
      $vista->setTerminal(true);
      
      return $vista;
    else: 
      $this->redirect()->toRoute('administrador');
    endif;    
  }
  
  
  //funcion que permite traer los datos para llenar los combos 
  public function callAjaxAction()
  {
    $session = new Container("univision");
    if(isset($session->id)):
    
      $this->odbc = $this->getServiceLocator()->get("ODBC");
      $combos = new Base($this->odbc);
      
      $tbl = $this->request->getPost(); 
      $data = $combos->catalogos($tbl);
      
      $vista =  new ViewModel($data);
      $vista->setTerminal(true);
      
      return $vista;  
    else: 
      $this->redirect()->toRoute('administrador');
    endif;     
  }

  //funcion para destruir la session
  public function cerrarAction()
  {
    $session = new Container("univision");
    session_destroy();
    $this->redirect()->toRoute('administrador');
    return new ViewModel();
  }


}
